import { Component, OnInit, ViewChild } from '@angular/core';
import { _HttpClient, ModalHelper } from '@delon/theme';
import { ZskInfoComponent } from '@shared/components/tyjb/lb_zskInfo';
import { ActivatedRoute } from '@angular/router';
import { YjsComponent } from '@shared/components/tyjb/lb_yjs';
import { YjszxComponent } from '@shared/components/tyjb/lb_yjszx';
import { GrComponent } from '@shared/components/tyjb/lb_gr';
import { NzMessageService } from 'ng-zorro-antd';
import { HttpService } from 'lbf';
import { LbFormComponent } from '@shared/components/tyjb/lb_form';

@Component({
  selector: 'app-tyjb-tysj-new',
  templateUrl: './tysj-new.component.html',  
  styleUrls: ['./tysj-new.less'],
})
export class TyjbTysjNewComponent implements OnInit {
  topTitle = '事项清单列表';
  curStep = 0; // 当前步骤 0 首页 1 知识库 2 一件事子项 3 一件事子项选择 4 人员选择 5 单位选择 6 表单录入 7 材料接收
  lastStep = 0; // 已完成的步骤
  isSxList_0 = false; // 显示事项清单
  isZsk_1 = true; // 显示知识库
  isYjs_2 = true; // 显示一件事子项
  isYjszx_3 = true; // 显示一件事子项
  isGr_4 = true; // 人员选择
  isDw_5 = true; // 单位选择
  isForm_6 = true; // 收件表单

  isBtnDelete = false; // 作废按钮不显示
  isBtnHome = false; // 事项清单首页按钮不显示
  isBtnNext = false; // 下一步按钮不显示
  isBtnBack = false; // 上一步按钮不显示
  isBtnZsk = false; // 知识库按钮不显示
  isBtnCur = false; // 返回当前经办环节

  styleParam = {}
  dataDAD017 = 0; // 事项编码
  dataDAD011 = ''; // 事项类型
  dataDAD031 = ''; // 事项名称
  dataDAD032 = ''; // 主体类别
  dataDAD069 = null;
  dataSxSelect = {}; // 一件事子项选择数据
  

  yjsdata = [];
  // 知识库
  @ViewChild('zskInfo', { static: false }) zskInfo: ZskInfoComponent;
  // 一件事子项
  @ViewChild('yjs', { static: false }) yjs: YjsComponent;
  // 一件事子项选择
  @ViewChild('yjszx', { static: false }) yjszx: YjszxComponent; 
  // 个人信息
  @ViewChild('gr', { static: false }) gr: GrComponent; 
  // 单位信息
  @ViewChild('dw', { static: false }) dw: GrComponent; 
  // 表单信息
  @ViewChild('sjForm', { static: false }) sjForm: LbFormComponent; 
  
  constructor(
    private http: _HttpClient, 
    private modal: ModalHelper,
    private route: ActivatedRoute,
    private lbservice: HttpService,
    public msgSrv: NzMessageService,
    ) { }

  ngOnInit() {
    this.styleParam = {height: (window.innerHeight-190)+'px'}

     this.yjs.DAD017 = undefined;
     this.zskInfo.DAD017 = undefined;
    this.route.queryParams.subscribe(param => {
      // 如果有传参，初始化

    });
  }

  showSxbl(){
    // 首页按钮、下一步按钮可用
    this.isBtnHome = true;
    this.isBtnNext = true;
    
    

    this.hiddenAll();

    // 判断是一件事 还是单一事项
    if(this.dataDAD011==='1'){
      this.lastStep = 3;
      this.dataSxSelect = {}
      this.showYjszx();
    }
    else{
      if(this.dataDAD032==='1')
      {
        this.lastStep = 5;
        this.showDw();
        this.dw.ZT = 0;
        // this.showYjs(); // 显示单位信息
      }
      else
      {
        this.lastStep = 4;
        this.showGr(); // 显示个人信息
        this.gr.ZT = 0;
      }    
    }
  }


 
  // 事项单击事件
  clickItem(item:any){
    this.dataDAD011 = item.dad011;
    this.dataDAD017 = item.dad017;
    this.dataDAD031 = item.dad031;
    this.dataDAD032 = item.dad032;

    if(this.dataDAD011==='1')
    {
      this.showSxbl();
    }else{
      console.log(this.dataDAD069);
      this.lbservice
        .lbservice('SJXX_ADD', {
          para: {
            DAD011: this.dataDAD011,
            DAD017: this.dataDAD017,
            DAD069: this.dataDAD069,
          },
        })
        .then(resdata => {
          if (resdata.code < 1) {
            this.msgSrv.error(resdata.errmsg);
          } else {
            this.yjsdata = resdata.message.list;
            this.dataDAD069 = this.yjsdata[0].DAD069;
            this.showSxbl();
          }
        });  
    }    
  }

  // 个人、单位信息选择
  selectRow(item:any){
    this.sjForm.formData = item;
    console.log(this.dataDAD069)
    this.sjForm.DAD069 = this.dataDAD069;

    this.hiddenAll();

    this.showForm();
    if(this.lastStep<6){
      this.lastStep = 6;
    }
    
  }
  
  // 隐藏所有功能，所有按钮失效
  hiddenAll()
  {
      this.isSxList_0 = true; // 首页不显示
      this.isZsk_1 = true; // 知识库不显示
      this.isYjs_2 = true; // 一件事子项不显示
      this.isYjszx_3 = true; // 一件事子项选择不显示
      this.isGr_4 = true; // 个人信息选择
      this.isDw_5 = true;
      this.isForm_6 = true;

      this.isBtnDelete = false; // 作废按钮不显示
      this.isBtnHome = false; // 事项清单首页按钮不显示
      this.isBtnNext = false; // 下一步按钮不显示
      this.isBtnBack = false; // 上一步按钮不显示
      this.isBtnZsk = false; // 知识库按钮不显示
      this.isBtnCur = false; // 返回当前经办环节
  }

  // 0 显示首页
  showHome(){
    this.hiddenAll();
    this.isSxList_0 = false; // 首页显示
    this.curStep = 0;
    if(this.lastStep>0)
    {
      this.isBtnCur = true; // 返回当前经办环节
    }
  }

  // 知识库 按钮单击
  showZskInfo(){
    if(this.dataDAD011==='1')
    {
      // this.lastStep = 2;
      this.showYjs(); // 显示一件事子项
    }
    else
    {
      // this.lastStep = 1;
      this.showZsk(); // 显示事项知识库
    }  
  }

  // 1 显示知识库
  showZsk(){
    // 先全部隐藏
    this.hiddenAll();  
    this.topTitle = '知识库详情--['+this.dataDAD031+']';
    this.zskInfo.DAD017 = this.dataDAD017;
    this.curStep = 1;
    // 知识库显示
    this.isZsk_1 = false;
    this.isYjs_2 = true;
    
    // 首页按钮 下一步按钮 显示
    this.isBtnHome = true;
    this.isBtnCur = true;
  }

  // 显示当前环节
  showCur(){
    this.hiddenAll();  
    // 一件事子项选择
    if(this.lastStep===3)
    {
      this.showYjszx();
    }
    // 个人信息
    else if(this.lastStep===4)
    {
      this.showGr();
    }
    // 单位信息
    else if(this.lastStep===5)
    {
      this.showDw();
    }
    // 表单
    else if(this.lastStep===6)
    {
      this.showForm();
    }
    else{
    }
  }

  // 2 显示一件事子项列表
  showYjs(){
    // 先全部隐藏
    this.hiddenAll();  
    this.topTitle = '一件事子项列表--['+this.dataDAD031+']';
    this.yjs.DAD017 = this.dataDAD017;
    this.curStep = 2;
    // 一件事子项 显示
    this.isYjs_2 = false;
    this.isZsk_1 = true;

    // 首页按钮 下一步按钮 显示
    this.isBtnHome = true;
    this.isBtnCur = true;
  }

  // 3 一件事子项选择
  showYjszx(){
    this.topTitle = '一件事子项选择--['+this.dataDAD031+']';
    this.yjszx.DAD017 = this.dataDAD017;    
    this.yjszx.FormData = this.dataSxSelect;
    this.curStep = 3;

    // 首页、上一步、下一步按钮显示
    this.isBtnHome = true;
    // this.isBtnBack = true;
    this.isBtnNext = true;
    this.isBtnZsk = true;

    // 事项子项选择 显示
    this.isYjszx_3 = false;
  }

  // 4 个人信息选择
  showGr(){
    this.topTitle = '人员选择--['+this.dataDAD031+']';
    
    this.curStep = 4;
    

    // 首页、知识库显示
    this.isBtnHome = true;
    this.isBtnZsk = true;

    // 如果是一件事，则显示上一步
    if(this.dataDAD011==='1')
    {
      this.isBtnBack = true;
    }

    // 下一步不显示，通过点击办理进入下一步
    // this.isBtnNext = true;

    // 个人信息 显示
    this.isGr_4 = false;
  }

  // 5 单位信息选择
  showDw(){
    this.topTitle = '单位选择--['+this.dataDAD031+']';
    
    this.curStep = 5;
    

    // 首页、知识库显示
    this.isBtnHome = true;
    this.isBtnZsk = true;

    // 如果是一件事，则显示上一步
    if(this.dataDAD011==='1')
    {
      this.isBtnBack = true;
    }

    // 下一步不显示，通过点击办理进入下一步
    // this.isBtnNext = true;

    // 单位信息 显示
    this.isDw_5 = false;
  }

  showForm(){
    this.topTitle = '表单采集--['+this.dataDAD031+']';
    
    this.curStep = 6;
    

    // 首页、知识库显示
    this.isBtnHome = true;
    this.isBtnZsk = true;
    this.isBtnBack = true;
    this.isBtnNext = true;

    this.isForm_6 = false;
  }

  // 导航栏按钮单击事件
  btnClick(flag:string){
    // 首页
    if(flag==='home')
    {
       this.showHome();
    }
    else if(flag==='zsk')
    {
       this.showZskInfo();
    }
    else if(flag==='cur')
    {
       this.showCur();
    }
    else if(flag==='delete')
    {

    }
    else if(flag==='next')
    {
       
       // --------- 1 知识库--------------------------
       if(this.curStep===1)
       {
          this.hiddenAll();
          // 判断是单位还是个人
          if(this.dataDAD032==='1'){
            this.lastStep = 5;
            this.showDw(); // 单位选择
          }
          else{
            this.lastStep = 4;
            this.showGr(); // 个人选择
          }
       }
       // ---------------2 一件事---------------------
       else if(this.curStep===2)
       {
          this.hiddenAll();
          this.lastStep = 3;
          this.showYjszx(); // 一件事子项选择
       }
       // 3 一件事子项选择
       else if(this.curStep===3)
       {
          // 判断是否有勾选了子项
          if(this.yjszx.FormData.DAE001===undefined||this.yjszx.FormData.DAE001.length===0)
          {
            this.msgSrv.error('至少选择一个子项！');
            return;
          }

          this.dataSxSelect = this.yjszx.FormData;
         
          this.lbservice
            .lbservice('SJXX_ADD', {
              para: {
                DAD011: this.dataDAD011,
                AD17: this.dataSxSelect,
                DAD069: this.dataDAD069,
                DAD017: this.dataDAD017,
              },
            })
            .then(resdata => {
              if (resdata.code < 1) {
                this.msgSrv.error(resdata.errmsg);
              } else {
                const data = resdata.message.list;
                this.dataDAD069 = data[0].DAD069;
                this.hiddenAll();
                // 判断是单位还是个人
                if(this.dataDAD032==='1'){
                  this.lastStep = 5;
                  this.showDw();
                }
                else{
                  this.lastStep = 4;
                  this.showGr(); // 个人选择
                }
              }
            });
          

          
       }
       else
       {

       }
    }
    // 上一步
    else if(flag==='back')
    {
      this.hiddenAll();
      // 子项选择
      if(this.curStep===3){
        this.showYjs(); // 显示一件事子项列表
      }  
      // 个人信息
      else if(this.curStep===4){
        // 如果是一件事，返回一件事子项选择
        if(this.dataDAD011==='1')
        {
          this.showYjszx();
        }
        else{
          this.showZsk();
        }
      }
      // 报表
      else if(this.curStep===6){
        if(this.dataDAD032==='1')
        {
          this.showDw();
        }
        else{
          this.showGr();
        }
      }

    }
    else
    {

    }
    
  }

  
  

}
